package lib

import "time"

type Company struct { //农业公司账户 *为必填字段
	Id             string       `json:"id"`              //账户id*
	Password       string       `json:"password"`        //账户密码*
	Name           string       `json:"name"`            //企业名称*
	Address        string       `json:"address"`         //企业地址*
	Desc           string       `json:"desc"`            //企业相关信息
	EnterpriseCode string       `json:"enterprise_code"` //统一社会信用码*
	Phone          string       `json:"phone"`           //企业电话*
	Email          string       `json:"email"`           //企业邮箱*
	Website        string       `json:"website"`         //企业官网
	Subaccount     []SubAccount `json:"subaccount"`      //该企业下发的子账户
	Space          []Space      `json:"space"`           //公司所拥有的场地
	Assets         []Assets     `json:"assets"`          //所拥有的资产
	Storage        []Pick       `json:"storage"`         //采摘的农作物储存
	Machinings     []Machining  `json:"machinings"`      //加工过得农作物储存
}
type CompanyImg struct {
	Id			string `json:"id"`
	ImgName		string `json:"img_name"`
	Subjection  string `json:"subjection"`
}
type SubAccount struct { //企业下发的子账户
	Id         string `json:"id"`         //子账户id*
	Password   string `json:"password"`   //子账户密码*
	Name       string `json:"name"`       //下发给农户的真实姓名*
	Address    string `json:"address"`    //农户的住址*
	Phone      string `json:"phone"`      //农户的电话*
	Subjection string `json:"subjection"` //隶属的企业id*
}
type Space struct { //场地结构体
	Id            string          `json:"id"`            //场地id*
	Name          string          `json:"name"`          //场地名称*
	Subjection    string          `json:"subjection"`    //隶属的企业id*
	Address       string          `json:"address"`       //场地地址*
	Type          string          `json:"type"`          //场地类型（土壤类型）*
	Size          string          `json:"size"`          //场地大小*
	TestFertility []TestFertility `json:"fertility"`     //测试肥力
	AddFertility  []AddFertility  `json:"add_fertility"` //场地添加肥力记录
}
type TestFertility struct { //测试肥力结构体
	Id            string    `json:"id"`             //肥力id*
	Space         string    `json:"space"`          //场地id*
	CreateDate    time.Time `json:"create_date"`    //测试肥力的日期*
	Tester        string    `json:"tester"`         //测试人员的id即公司下发的子账户id*
	Type          string    `json:"type"`           //场地类型*
	OrganicMatter float64   `json:"organic_matter"` //有机质含量*  g/kg
	Alkali        float64   `json:"alkali"`         //碱解氮含量*  mg/kg
	Phosphorus    float64   `json:"phosphorus"`     //有效磷含量*  mg/kg
	Potassium     float64   `json:"potassium"`      //速效钾含量*  mg/kg
}
type AddFertility struct { //添加肥力结构体
	Id         string    `json:"id"`          //施肥id*
	Space      string    `json:"space"`       //场地id*
	CreateDate time.Time `json:"create_date"` //施肥日期*
	Name       string    `json:"name"`        //施肥名称*
	Fertility  string    `json:"fertility"`   //所施肥料id*
	Tester     string    `json:"tester"`      //施肥人员的id即公司下发的子账户id*
	Type       string    `json:"type"`        //施肥类型*
	Quality    float64   `json:"quality"`     //施肥质量* kg
}
type Farming struct { //农事管理结构体 不可修改
	Id         string    `json:"id"`          //农事id 这个id对于需要监控的农作物id 通过这个查询到农作物的一系列农事*
	CropsId    string    `json:"crops_id"`    //农作物id
	Name       string    `json:"name"`        //农事name*
	Space      string    `json:"space"`       //场地id*
	Tester     string    `json:"tester"`      //录入农事人员id及 公司下发的子账户*
	CreateTime time.Time `json:"create_time"` //录入时间*
	Type       string    `json:"type"`        //农事类型*
	Desc       string    `json:"desc"`        //农事备注*
}
type Pick struct { //采摘农作物 不可修改
	Id         string    `json:"id"`          //采摘农作物id 即这一批次农作物id*
	Name       string    `json:"name"`        //农作物名称
	Subjection string    `json:"subjection"`  //隶属的企业id*
	CropsId    string    `json:"crops_id"`    //需要采摘的农作物id*
	Tester     string    `json:"tester"`      //采摘人员id及 公司下发的子账户*
	CreateTime time.Time `json:"create_time"` //采摘时间*
	Weight     float64   `json:"weight"`      //采摘农作物的重量*
	Desc       string    `json:"desc"`        //农作物备注
}
type Machining struct { //加工农作物
	Id             string    `json:"id"`              //加工农作物id 即这一批次加工农作物id*
	Name           string    `json:"name"`            //加工产品名称*
	Subjection     string    `json:"subjection"`      //隶属的企业id*
	PickId         string    `json:"pick_id"`         //已经采摘的农作物id 即企业账户农作物库存的id*
	Tester         string    `json:"tester"`          //加工人员id及 公司下发的子账户*
	CreateTime     time.Time `json:"create_time"`     //加工时间*
	OriginalWeight float64   `json:"original_weight"` //原始重量*
	Weight         float64   `json:"weight"`          //加工过后的重量*
	Desc           string    `json:"desc"`            //加工备注
}
type Stock struct {
	Id         string    `json:"id"`         //这批次存储id*
	inTime     time.Time `json:"in_time"`    //入仓时间*
	outTime    time.Time `json:"out_time"`   //出仓时间
	StockId    []string  `json:"stock_id"`   //入仓产品id*
	Subjection string    `json:"subjection"` //隶属的企业id*
	inTester   string    `json:"in_tester"`  //入仓管理员id*
	outTester  string    `json:"out_tester"` //出仓管理员id
}
type Crops struct { //农作物种植结构体 记录该农作物的所有成长培育过程
	Id           string    `json:"id"`            //农作物id*
	Name         string    `json:"name"`          //农作物名称*
	Cycle        int64     `json:"cycle"`         //生长周期（天）*
	CreateTime   time.Time `json:"create_time"`   //创建时间
	PersonLiable string    `json:"person_liable"` //责任人id*
	Farmings     []Farming `json:"farmings"`      //农事记录
	Status       string    `json:"status"`        //农作物状态*
	Type         string    `json:"type"`          //植物还是动物*
}
type Order struct {//订单
	Id string `json:"id"`//订单id*
	Compid string `json:"compid"`//采购的公司
	Purchase string `json:"purchase"`//采购得农作物id*
	StockId string `json:"stock_id"`//储存id
	Type  string `json:"type"`//采购类型
	Weight float64 `json:"weight"`//采购的重量*
	Status string `json:"status"`//订单状态*
	CreateTime time.Time `json:"create_time"`//采购时间
	Logistics []Logistics `json:"logistics"`//物流信息
}
type Back struct {//追溯
	Id string `json:"id"`
	Logistics []Logistics `json:"logistics"`//运输的溯源
	stock  Stock `json:"stock"`//存储
	Crops Crops `json:"crops"`//种植
}
type Logistics struct {
	Id string `json:"id"`//id
	time time.Time `json:"time"`//检测时间
	Address string `json:"address"`//当前地址
	Temp float64 `json:"temp"`//检测温度
}
type Assets struct { //资产结构体
	Id           string    `json:"id"`            //资产id*
	Name         string    `json:"name"`          //资产名*
	Subjection   string    `json:"subjection"`    //隶属的企业id*
	PurchaseDate time.Time `json:"purchase_date"` //采购日期*
	Type         string    `json:"type"`          //资产类型 即种子 肥料 农药*
	Desc         string    `json:"desc"`          //资产规格*
	Production   string    `json:"production"`    //生产公司*
	OverdueDate  time.Time `json:"overdue_date"`  //过期时间*
}